import React from 'react';
import Koa from 'koa';
import koaStatic from 'koa-static';
import path from 'path';

import reactSSR from './middleware/react-ssr';

import proxy from 'koa-better-http-proxy';

const app = new Koa();


// emmm如果照package.json里script用nodemon运行命令 这里返回的是:
console.log('pwd', process.cwd()); // pwd D:\x\ssr_tutorial\react-ssr_tutorial\02xxx √ 这个是正常的
console.log('__filename:', __filename); // /index.js × 这个莫名其妙为/
console.log('path.join(__dirname, \'../public\'):',path.join(__dirname, '../public')); // \public 这里也莫名其妙直接就 \public了

//故不使用绝对路径 而采用相对路径
app.use(koaStatic('public'));

//ssr中间件
app.use(reactSSR);

// 必须放在reactSSR后面 否则bug
// /api/news -> localhost:9999/ssr/api/news
app.use(proxy('http://localhost:9999', {
  proxyReqPathResolver: function(ctx) {
    return '/ssr' + require('url').parse(ctx.url).path;
  },
  filter: function(ctx) {
    console.log('ctx.request.path.startsWith(\'/api/\'):',ctx.request.path.startsWith('/api/'));
    return ctx.request.path.startsWith('/api/');
  }
}));


//启动服务
app.listen(9001, () => {
  console.log('server is start at 9001');
});
